<?

$arResult = array();

if($_REQUEST['AUTH_USER'])
{
	$USER_LOGIN = $_REQUEST['USER_LOGIN'];
	$USER_PASSWORD = $_REQUEST['USER_PASSWORD'];
	
	CValidate::Field($USER_LOGIN, array('TYPE'=>'STRING', 'MIN_LEN'=>3, 'MAX_LEN'=>50, 'REGEXP'=>'/^[\-_A-Za-z0-9]+?$/', 'ERROR_MESSAGE'=>'Login incorrect'));
	CValidate::Field($USER_PASSWORD, array('TYPE'=>'STRING', 'MIN_LEN'=>6, 'MAX_LEN'=>50, 'ERROR_MESSAGE'=>'Password incorrect'));
	
	if(!CMain::IssetError('CVALIDATE'))
	{
		$arResult['USER'] = CUser::GetByLogin($USER_LOGIN);
		if($arResult['USER']['ID'])
		{
			// Проверяем пароль
			$bAuth = CValidate::Field(md5($USER_PASSWORD), array('TYPE'=>'EQUAL', 'EQUAL_VALUE'=>$arResult['USER']['PASSWORD'], 'ERROR_MESSAGE'=>'Пароль не подходит'));
			
			// Авторизовываем пользователя
			if($bAuth) CUser::Authorize();
		}
		else
		{
			CMain::SetError('Пользователь с таким логином отсутствует', 'CVALIDATE');
		}
	}
	
	if(CMain::IssetError('CVALIDATE'))
	{
		$arResult['ERROR'] = CMain::GetError('CVALIDATE');
	}
}
elseif($_REQUEST['REGISTER_USER'])
{
	$USER_LOGIN = $_REQUEST['USER_LOGIN'];
	$USER_EMAIL = $_REQUEST['USER_EMAIL'];
	$USER_PASSWORD = $_REQUEST['USER_PASSWORD'];
	$USER_CONFIRM_PASSWORD = $_REQUEST['USER_CONFIRM_PASSWORD'];

	CValidate::Field($USER_LOGIN, array('TYPE'=>'STRING', 'MIN_LEN'=>3, 'MAX_LEN'=>50, 'REGEXP'=>'/^[\-_A-Za-z0-9]+?$/', 'ERROR_MESSAGE'=>'Некорректно введен логин'));
	CValidate::Field($USER_PASSWORD, array('TYPE'=>'STRING', 'MIN_LEN'=>6, 'MAX_LEN'=>50, 'ERROR_MESSAGE'=>'Некорректно введен пароль'));
	CValidate::Field($USER_PASSWORD, array('TYPE'=>'EQUAL', 'EQUAL_VALUE'=>$USER_CONFIRM_PASSWORD, 'ERROR_MESSAGE'=>'Некорректное подтверждение пароля'));
	CValidate::Field($USER_EMAIL, array('TYPE'=>'EMAIL', 'ERROR_MESSAGE'=>'Некорректно введен почтовый адресс'));
	
	if(!CMain::IssetError('CVALIDATE'))
	{
		CUser::Add(array(
			'LOGIN'=>$USER_LOGIN,
			'EMAIL'=>$USER_EMAIL,
			'PASSWORD'=>md5($USER_PASSWORD),
		));
	}
	else
	{
		$arResult['ERROR'] = CMain::GetError('CVALIDATE');
	}
}


// Include template
$this->IncludeTemplate();